package chap3_13;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

/**
 * @author https://gitee.com/W_Jun
 * @date 2021-12-15 17:02
 * @Description 把文本文件中的数据读取到集合中，并遍历集合。要求：文件中每一行数据是一个学生对象的成员变量值。
 */
public class ArrayListToFileDemo {
    public static void main(String[] args) throws IOException {
        //创建ArrayList集合
        ArrayList<Student> array = new ArrayList<>();
        //创建学生对象
        Student s1 = new Student("id001", "刘一", 31, "北京");
        Student s2 = new Student("id002", "陈二", 32, "南京");
        Student s3 = new Student("id003", "张三", 33, "西安");
        //把学生对象添加到集合
        array.add(s1);
        array.add(s2);
        array.add(s3);
        //创建字符缓冲输出流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("chapter03-字符流\\src\\chap3_13\\students.txt"));
        //遍历集合，得到每一个学生对象
        for (Student s : array) {
            //把学生对象的数据拼接成指定格式的字符串
            StringBuilder sb = new StringBuilder();
            sb.append(s.getSid()).append(", ").append(s.getName()).append(", ")
                    .append(s.getAge()).append(", ").append(s.getAddress());
            //调用字符缓冲输出流对象的方法写数据
            bw.write(sb.toString());
            bw.newLine();
            bw.flush();
        }
        //释放资源
        bw.close();
    }
}
